# -- coding: utf-8 --
from tools.Request_General import BaseAPI


class OracleDataTable(BaseAPI):
    """数据表组件for Oracle"""

    def save_edit_datatable(self, payload):
        '''数据表新建&编辑（前端调用）'''
        r = self.request_send(json=payload)
        return r

    def save_datatable(self, payload):
        '''数据表新建&编辑（后端调用）'''
        r = self.request_send(json=payload)
        return r

    def only_check(self, payload):
        '''数据表编辑--仅校验（后端组件调用）'''
        r = self.request_send(json=payload)
        return r

    def generate_actual_tablename(self, payload):
        '''根据tableName生成实际物理表名'''
        r = self.request_send(json=payload)
        return r

    def table_info_field(self, payload):
        '''获取数据表元素信息（从平台获取信息)'''
        r = self.request_send(json=payload)
        return r

    def table_info_field_physical(self, payload):
        '''获取数据表元素信息（从物理表获取信息）'''
        r = self.request_send(json=payload)
        return r

    def delete_datatable(self, payload):
        '''只删除物理表'''
        r = self.request_send(json=payload)
        return r

    def ifexists_physical(self, payload):
        '''只判断物理数据表是否存在'''
        r = self.request_send(json=payload)
        return r

    def insert_data(self, payload):
        '''向数据表中写入数据'''
        r = self.request_send(json=payload)
        return r

    def customize_sql(self, payload):
        '''数据表使用视图-自定义sql查询'''
        r = self.request_send(json=payload)
        return r

    def get_using_view_data(self, payload):
        '''数据表使用视图获取数据'''
        r = self.request_send(json=payload)
        return r

    def get_actual_tablename(self, payload):
        '''获取数据表实际表名'''
        r = self.request_send(json=payload)
        return r

    def get_datatable_column_list(self, payload):
        '''根据实际表名，查询数据表字段信息'''
        r = self.request_send(data=payload)
        return r

    def get_datatable_column_info(self, payload):
        '''根据列名获取数据表的Column信息'''
        r = self.request_send(json=payload)
        return r

    def custom_sql_execute(self, payload):
        '''自定义SQL执行(后端调用)--增删改查，支持多表联合查询'''
        r = self.request_send(json=payload)
        return r

    def data_diff(self, payload):
        '''判断数据表组件元素配置信息和实际物理数据表字段信息是否一致'''
        r = self.request_send(json=payload)
        return r

    def delete_data(self, payload):
        '''删除数据表的数据'''
        r = self.request_send(json=payload)
        return r

    def distinct_column_members(self, payload):
        '''查询数据表列字段，去重后的数据集合'''
        r = self.request_send(json=payload)
        return r

    def get_data_execute_sql(self, payload):
        '''执行查询sql查询数据表的数据'''
        r = self.request_send(json=payload)
        return r

    def physical_table_exist(self, payload):
        '''根据元素信息或者直接通过传参的实际表名，判断对应的物理数据表是否存在'''
        r = self.request_send(json=payload)
        return r

    def table_ifexists(self, payload):
        '''根据数据表名称判断数据表是否存在'''
        r = self.request_send(json=payload)
        return r

    def update_data(self, payload):
        '''更新数据表中的数据'''
        r = self.request_send(json=payload)
        return r


if __name__ == '__main__':
    # pass
    from application.general_create import COOKIE, APP_ID, SPACE_ID

    headers = {"cookie": COOKIE, "language": "zh-cn", "app": APP_ID, "space": SPACE_ID}
    print(headers)
    r = OracleDataTable(version="1.0", headers=headers).get_using_view_data(
        {'elementName': 'app_TestOracle_table', 'folderId': '0', 'path': ''})
    print(r.text)
